# 1. 函式
範例程式碼
package main
import "fmt"
func add(x int, y int) int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
函數可以沒有參數或接受多個參數。
在這個例子中,"add" 接受兩個 int 類型的參數。
注意類型在變數之後。
return 代表傳回的數值為何,這裡表示傳回 x + y 也就是 42+13 ,所以結果會是 55。
詳細的語法定義可以參考官方文件。
當兩個或多個連續的函數命名參數是同一類型,則除了最後一個類型之外,其他都可以省略。
舉例來說
x int, y int
可以被縮寫為
x, y int
也就是說上面的範例程式碼可以改成
package main
import "fmt"
func add(x, y int) int {
return x + y
}
func main() {
fmt.Println(add(42, 13))
}
兩種方法的輸出結果都會是相同的。
輸出結果
55
函數可以返回任意數量的返回值。
這個函數返回了兩個字串。
範例程式碼
package main
import "fmt"
func swap(x, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
輸出結果
world hello
在 Go 中,函數可以返回多個「結果參數」,而不僅僅是一個值。它們可以像變數那樣命名和使用。
如果命名了返回值參數,一個沒有參數的 return 語句,會將當前的值作為返回值返回。
以這個程式碼為例,sum int 表示宣告整數 sum ,將參數 17 放入 sum 中,x, y int 宣告整數 x,y 在下面使用,由於 return 沒有設定返回值,這邊程式就將 x,y 都回傳了,所以結果會出現 7 10。
範例程式碼
package main
import "fmt"
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
func main() {
fmt.Println(split(17))
}
輸出結果
7 10
:= 的用法,在後面會有較詳細的說明。
split function 中的 x = sum \* 4 / 9
出錯: illegal character U+005C ''
是否有多打\
我是使用vscode
當年鐵人賽的系統跟現在這邊不太一樣,可能他們再轉移資料的時候 escape 多跑出來的東西,確實是多一個 \ 沒錯
好的 了解
謝謝你分享內容